﻿using System.Xml.Serialization;
using CMISForSharePoint.cmisEnums;
namespace CMISForSharePoint.cmisTypes
{

    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisTypePolicyDefinitionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisTypeRelationshipDefinitionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisTypeFolderDefinitionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisTypeDocumentDefinitionType))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.cmis.org/2008/05")]
    [System.Xml.Serialization.XmlRootAttribute("type", Namespace = "http://www.cmis.org/2008/05", IsNullable = false)]
    public partial class cmisTypeDefinitionType
    {

        private string typeIdField;

        private string queryNameField;

        private string displayNameField;

        private enumObjectType baseTypeField;

        private string baseTypeQueryNameField;

        private string parentIdField;

        private string descriptionField;

        private bool creatableField;

        private bool fileableField;

        private bool queryableField;

        private bool controllableField;

        private bool includedInSupertypeQueryField;

        private cmisPropertyDefinitionType[] itemsField;

        private System.Xml.XmlElement[] anyField;

        private System.Xml.XmlAttribute[] anyAttrField;

        public cmisTypeDefinitionType()
        {
            this.includedInSupertypeQueryField = true;
        }

        /// <remarks/>
        public string typeId
        {
            get
            {
                return this.typeIdField;
            }
            set
            {
                this.typeIdField = value;
            }
        }

        /// <remarks/>
        public string queryName
        {
            get
            {
                return this.queryNameField;
            }
            set
            {
                this.queryNameField = value;
            }
        }

        /// <remarks/>
        public string displayName
        {
            get
            {
                return this.displayNameField;
            }
            set
            {
                this.displayNameField = value;
            }
        }

        /// <remarks/>
        public enumObjectType baseType
        {
            get
            {
                return this.baseTypeField;
            }
            set
            {
                this.baseTypeField = value;
            }
        }

        /// <remarks/>
        public string baseTypeQueryName
        {
            get
            {
                return this.baseTypeQueryNameField;
            }
            set
            {
                this.baseTypeQueryNameField = value;
            }
        }

        /// <remarks/>
        public string parentId
        {
            get
            {
                return this.parentIdField;
            }
            set
            {
                this.parentIdField = value;
            }
        }

        /// <remarks/>
        public string description
        {
            get
            {
                return this.descriptionField;
            }
            set
            {
                this.descriptionField = value;
            }
        }

        /// <remarks/>
        public bool creatable
        {
            get
            {
                return this.creatableField;
            }
            set
            {
                this.creatableField = value;
            }
        }

        /// <remarks/>
        public bool fileable
        {
            get
            {
                return this.fileableField;
            }
            set
            {
                this.fileableField = value;
            }
        }

        /// <remarks/>
        public bool queryable
        {
            get
            {
                return this.queryableField;
            }
            set
            {
                this.queryableField = value;
            }
        }

        /// <remarks/>
        public bool controllable
        {
            get
            {
                return this.controllableField;
            }
            set
            {
                this.controllableField = value;
            }
        }

        /// <remarks/>
        public bool includedInSupertypeQuery
        {
            get
            {
                return this.includedInSupertypeQueryField;
            }
            set
            {
                this.includedInSupertypeQueryField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("propertyBooleanDefinition", typeof(cmisPropertyBooleanDefinitionType))]
        [System.Xml.Serialization.XmlElementAttribute("propertyDateTimeDefinition", typeof(cmisPropertyDateTimeDefinitionType))]
        [System.Xml.Serialization.XmlElementAttribute("propertyDecimalDefinition", typeof(cmisPropertyDecimalDefinitionType))]
        [System.Xml.Serialization.XmlElementAttribute("propertyHtmlDefinition", typeof(cmisPropertyHtmlDefinitionType))]
        [System.Xml.Serialization.XmlElementAttribute("propertyIdDefinition", typeof(cmisPropertyIdDefinitionType))]
        [System.Xml.Serialization.XmlElementAttribute("propertyIntegerDefinition", typeof(cmisPropertyIntegerDefinitionType))]
        [System.Xml.Serialization.XmlElementAttribute("propertyStringDefinition", typeof(cmisPropertyStringDefinitionType))]
        [System.Xml.Serialization.XmlElementAttribute("propertyUriDefinition", typeof(cmisPropertyUriDefinitionType))]
        [System.Xml.Serialization.XmlElementAttribute("propertyXmlDefinition", typeof(cmisPropertyXmlDefinitionType))]
        public cmisPropertyDefinitionType[] Items
        {
            get
            {
                return this.itemsField;
            }
            set
            {
                this.itemsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAnyElementAttribute()]
        public System.Xml.XmlElement[] Any
        {
            get
            {
                return this.anyField;
            }
            set
            {
                this.anyField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAnyAttributeAttribute()]
        public System.Xml.XmlAttribute[] AnyAttr
        {
            get
            {
                return this.anyAttrField;
            }
            set
            {
                this.anyAttrField = value;
            }
        }
    }



    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.cmis.org/2008/05")]
    [System.Xml.Serialization.XmlRootAttribute("documentType", Namespace = "http://www.cmis.org/2008/05", IsNullable = false)]
    public partial class cmisTypeDocumentDefinitionType : cmisTypeDefinitionType
    {

        private bool versionableField;

        private enumContentStreamAllowed contentStreamAllowedField;

        /// <remarks/>
        public bool versionable
        {
            get
            {
                return this.versionableField;
            }
            set
            {
                this.versionableField = value;
            }
        }

        /// <remarks/>
        public enumContentStreamAllowed contentStreamAllowed
        {
            get
            {
                return this.contentStreamAllowedField;
            }
            set
            {
                this.contentStreamAllowedField = value;
            }
        }
    }




    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.cmis.org/2008/05")]
    [System.Xml.Serialization.XmlRootAttribute("folderType", Namespace = "http://www.cmis.org/2008/05", IsNullable = false)]
    public partial class cmisTypeFolderDefinitionType : cmisTypeDefinitionType
    {
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.cmis.org/2008/05")]
    [System.Xml.Serialization.XmlRootAttribute("relationshipType", Namespace = "http://www.cmis.org/2008/05", IsNullable = false)]
    public partial class cmisTypeRelationshipDefinitionType : cmisTypeDefinitionType
    {

        private string[] allowedSourceTypesField;

        private string[] allowedTargetTypesField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("allowedSourceTypes")]
        public string[] allowedSourceTypes
        {
            get
            {
                return this.allowedSourceTypesField;
            }
            set
            {
                this.allowedSourceTypesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("allowedTargetTypes")]
        public string[] allowedTargetTypes
        {
            get
            {
                return this.allowedTargetTypesField;
            }
            set
            {
                this.allowedTargetTypesField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.cmis.org/2008/05")]
    [System.Xml.Serialization.XmlRootAttribute("policyType", Namespace = "http://www.cmis.org/2008/05", IsNullable = false)]
    public partial class cmisTypePolicyDefinitionType : cmisTypeDefinitionType
    {
    }

}